package com.glorystone.ins.service;

import java.util.List;
import java.util.Map;

import com.glorystone.ins.common.common.PageVo;
import com.glorystone.ins.domain.SysRole;
import com.glorystone.ins.domain.SysUser;
import com.glorystone.ins.interceptor.PageList;

/**
 * Created by klaus on 9/27/16.
 */
public interface ISysRoleService {


	/**
	 * 添加角色
	 * @param role
	 * @return
	 */
    boolean addRole(SysRole role);

    /**
     * 通过角色id删除角色
     * @param roleId
     * @return
     */
    boolean delRole(Long roleId);

    /**
     * 更新角色
     * @param role
     * @return
     */
    boolean updateRole(SysRole role);

    /**
     * 通过角色id查询角色
     * @param roleId
     * @return
     */
    SysRole getRoleById(Long roleId);

    /**
     * 查询所有角色-分页列表
     * @return
     */
    PageList<SysRole>  queryAllRoleList(PageVo vo);

    /**
     * 通过角色名称查询角色
     * @param name
     * @return
     */
    List<SysRole> checkRoleByName(String name);

    /**
     * 获取所有部门
     * @return
     */
    List<Map<String,Object>> getAllDepartment();

    /**
     * 获取所有部门--**包括外部
     * @return
     */
    List<Map<String,Object>> getAllInOutDepartment();

    /**
     * 获取部门下的数据范围
     * @param tid
     * @return
     */
    List<Map<String,String>> getRoleType(Long tid);


    /**
     * 查询所有角色
     * @return
     */
    List<SysRole> getAllRoleList();


    /**
     * 根据部门查询部门下所有角色
     * @param departmentId 部门ID
     * @return
     */
    List<SysRole> getRoleListByDepartmentId(Long departmentId);

    /**
     * 根据部门ID获取部门下用户列表
     * @return
     */
    List<SysUser> getUserListByDepartmentId(Long departmentId);
    


}
